package model;


import java.util.ArrayList;


public class Bruker extends Person {
	public final static String NY_BESKJED_BRUKER = "NyBeskjedBruker";
	public final static String FJERN_BESKJED_BRUKER = "FjernBeskjedBruker";
	

	private String passord;
	private ArrayList<Beskjed> beskjeder;
	
	
	public Bruker(String navn){
		super(navn);
		beskjeder = new ArrayList<Beskjed>();
	}
	
	public Bruker(){
		super();
		beskjeder = new ArrayList<Beskjed>();
	}
	public Bruker(String navn,String passord){
		super(navn);
		this.passord = passord;
		beskjeder = new ArrayList<Beskjed>();
	}
	public Bruker(String navn, ArrayList<Avtale> avtaler,String passord, ArrayList<Beskjed> beskjeder){
		super(navn,avtaler);
		this.passord = passord;
		this.beskjeder = beskjeder;
	}
	
	public String getPassord() {
		return passord;
	}
	public void setPassord(String passord) {
		this.passord = passord;
	}
	public ArrayList<Beskjed> getBeskjeder() {
		return beskjeder;
	}
	public void setBeskjeder(ArrayList<Beskjed> beskjeder) {
		this.beskjeder = beskjeder;
	}

	public void leggTilBeskjed(Beskjed beskjed){
		if(!beskjeder.contains(beskjed)){
			Beskjed fjernes = null;
			for(Beskjed allerede: beskjeder){
				if(beskjed.getAvtale().getId()==(allerede.getAvtale().getId()) && !beskjed.getAvtale().getEier().equals(this.getNavn())){
					fjernes = allerede;
				}
			}
			beskjeder.remove(fjernes);
			beskjeder.add(beskjed);
			pcs.firePropertyChange(NY_BESKJED_BRUKER, fjernes, beskjed);
		}	
	}
	
	public void fjernBeskjed(Beskjed beskjed){
		if (beskjeder.contains(beskjed)){
			beskjeder.remove(beskjed);
			pcs.firePropertyChange(FJERN_BESKJED_BRUKER, beskjed, null);
		}
	}
	
	public boolean equal(Object obj){
		if (!(obj instanceof Bruker)){
			return false;
		}
		Bruker bruker = (Bruker) obj;
		return getNavn().equals(bruker.getNavn()) &&
				passord.equals(bruker.getPassord());		
	}
}
